#ifndef _TBPOS2_H_
#define _TBPOS2_H_

#include "TBSettings.h"

namespace tb
{

	class Vec2;

	class Pos2
	{
	
	public:
	
		Pos2();
		Pos2(int a_X, int a_Y);
		Pos2(const Pos2& a_Other);
		Pos2(const Vec2& a_Other);
		~Pos2();

		// ================================
		// Operators
		// ================================

		Pos2& operator - ();

		Pos2& operator += (const Pos2& a_Other);
		Pos2 operator + (const Pos2& a_Other) const;

		Pos2& operator -= (const Pos2& a_Other);
		Pos2 operator - (const Pos2& a_Other) const;

		Pos2& operator *= (int a_Scalar);
		Pos2& operator *= (const Pos2& a_Other);
		Pos2 operator * (int a_Scalar) const;
		Pos2 operator * (const Pos2& a_Other) const;

		Pos2& operator /= (int a_Scalar);
		Pos2& operator /= (const Pos2& a_Other);
		Pos2 operator / (int a_Scalar) const;
		Pos2 operator / (const Pos2& a_Other) const;
	
		// ================================
		// Data
		// ================================

		int x, y;
	
	}; // class Pos2

}; // namespace tb

#include "TBPos2.inl"
	
#endif